package overload;

/**
 * @Author Stringzhua
 * @Date 2024/2/29 10:36
 * description:可变参数
 * java允许将同一个类中多个同名功能但参数
 */
public class varparameter01 {
    public static void main(String[] args) {
        sumMethod m = new sumMethod();
        m.sum(1,2,3);
        System.out.println("m = " + m.sum(1,2,103));
        System.out.println("m = " + m.sum(1,2));
    }
}

class sumMethod {
    //可以计算2个数的和、3个数的和、4、5、6
    //可以使用方法重载
//    public int sum(int n1, int n2) {//两个数的和
//        return n1 + n2;
//    }
//
//    public int sum(int n1, int n2, int n3) {//三个数的和
//        return n1 + n2 + n3;
//    }
//
//    public int sum(int n1, int n2, int n3, int n4) {//两个数的和
//        return n1 + n2 + n3 + n4;
//    }
//    //........
    //上面的三个方法名称相同,功能相同,参数个数不同-->使用可变参数优化
    //1.int... 表示接受的是可变参数,类型是int,即可以接收多个int(0~多)
    //2.使用可变参数时,可以当作是数组来使用,即nums可以当作数组
    //3.遍历nums求和
    public int sum(int... nums){
        System.out.println("接收参数的个数="+nums.length);
        int res=0;
        for (int i = 0; i < nums.length; i++) {
            res+=nums[i];
        }
        return res;
    }
}
